import axios from "axios"

// 创建AI服务专用的axios实例
// 使用Vite配置中的代理路径 /ai
const aiRequest = axios.create({
  baseURL: "/ai",
  timeout: 30000
})

// 添加请求拦截器
aiRequest.interceptors.request.use(
  function (config) {
    // 如果需要API Key，可以在这里添加
    // const apiKey = import.meta.env.VITE_AI_API_KEY
    // if (apiKey) {
    //   config.headers["X-API-Key"] = apiKey
    // }
    return config
  },
  function (error) {
    return Promise.reject(error)
  }
)

// 添加响应拦截器
aiRequest.interceptors.response.use(
  function (response) {
    return response.data
  },
  function (error) {
    const message = error.response?.data?.error || error.message || "请求失败"
    return Promise.reject({ message, status: error.response?.status })
  }
)

/** AI对话接口参数 */
export interface ChatParams {
  message: string
  model?: string
  stream?: boolean
  temperature?: number
  max_tokens?: number
  system_prompt?: string
}

/** AI对话响应 */
export interface ChatResponse {
  success: boolean
  reply: string
  model: string
  usage?: {
    prompt_tokens: number
    completion_tokens: number
    total_tokens: number
  }
}

/** 获取可用模型列表响应 */
export interface ModelsResponse {
  success: boolean
  data: Array<{
    id: string
    object: string
    created: number
    owned_by: string
  }>
}

/**
 * AI对话接口
 */
export function chatWithAI(params: ChatParams): Promise<ChatResponse> {
  return aiRequest.post("/chat", params)
}

/**
 * 获取可用的AI模型列表
 */
export function getAvailableModels(): Promise<ModelsResponse> {
  return aiRequest.get("/models")
}

export default aiRequest

